/**
 * 2016，thor.com，all rights reserved。
 * 
 * Project：		palmmall-api
 * Filename：	AComplaintService.java
 * Created：		2016年8月21日
 * Creator：		wolv
 */
package com.thor.palmmall.rest.complaint;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import com.thor.commons.entity.BeanOperateInfo;
import com.thor.commons.exception.ThorServiceException;
import com.thor.commons.query.QueryResult;
import com.thor.palmmall.rest.common.AContractQueryParam;
import com.thor.palmmall.rest.common.AQueryCommonParam;
import com.thor.palmmall.rest.common.AUserGroupLoadParam;
import com.thor.palmmall.rest.contract.AContract;
import com.thor.palmmall.rest.contract.AQueryContractParam;

/**
 * @author wolv
 *
 */
@Path("/complaint")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface AComplaintService {

	@POST
	@Path(value = "/create")
	String create(AComplaint complaint, @QueryParam("") BeanOperateInfo operateInfo) throws ThorServiceException;

	@POST
	@Path(value = "/{id}")
	AComplaint get(@PathParam("id") String id, AUserGroupLoadParam param) throws ThorServiceException;

//	@POST
//	@Path(value = "/record")
//	void addWorkRecord(AWorkRecord record, @QueryParam("") BeanOperateInfo operateInfo) throws ThorServiceException;

	@POST
	@Path(value = "/query")
	QueryResult<AComplaint> query(AQueryCommonParam param) throws ThorServiceException;
	
	@GET
	@Path(value = "/queryOutgoingState")
	List<String> queryOutgoingState() throws ThorServiceException;

	@POST
	@Path(value = "/contract/query")
	QueryResult<AContract> queryContract(AQueryContractParam param) throws ThorServiceException;
	
	@POST
	@Path(value = "/save")
	void save(AComplaint complaint, @QueryParam("") BeanOperateInfo operateInfo) throws ThorServiceException;

}
